package com.regent.central.bill.service;

import com.regent.central.bill.core.DeliveryGoods;
import com.regent.central.infrastructure.service.DomainService;

import java.util.List;

public interface DeliveryGoodsService extends DomainService<DeliveryGoods> {

    /**
     * 是否发过此货品
     *
     * @param unitId
     * @param styleId
     * @return true:发过此货品，false：没有发过此货品
     * @throws Exception
     */
    boolean isDeliveryGoods(String unitId, String styleId) throws Exception;

    /**
     * 撤销发货货品记录
     *
     * @param deliveryGoodsIds 发货货品记录ID
     * @param userCanceled     撤销人
     */
    void cancel(String userCanceled, String... deliveryGoodsIds);

    /**
     * 获取销售单的发货货品列表
     *
     * @param saleOrderId 销售单ID
     * @return 销售单的发货货品列表
     */
    List<DeliveryGoods> getSaleOrderDeliveryGoods(String saleOrderId);

    /**
     * 获取销售单的发货货品列表
     *
     * @param saleOrderId 销售单ID
     * @param canceled    已撤销
     * @param deleted     已删除
     * @return 销售单的发货货品列表
     */
    List<DeliveryGoods> getSaleOrderDeliveryGoods(String saleOrderId, Boolean canceled, Boolean deleted);

}